/**
 * LeetCode104：二叉树的最大深度
 * 给定一个二叉树，找出其最大深度
 */

function TreeNode(val){
    this.val = val;
    this.left = this.right = null;
}

/**
 * @description 深度优先遍历，每次遍历时获取当前节点的层级
 * @param {TreeNode} root
 * @return {number}
 */
var maxDepth = function (root){
    let res = 0;
    const dft = (n,l) => {
        if (!n) return;
        //当前节点是叶子结点时，刷新最大深度的值
        if (!n.left && !n.right){
            res = Math.max(res,l);
            return;
        }
        console.log(n.val);
        dft(n.left,l+1);
        dft(n.right,l+1);
    };
    dft(root, 1);
    return res;
}

//时间复杂度：O(n)
//空间复杂度：最好情况下是O(log n)，最差情况下是O(n)